package cn.christ.com.mobilesafe.common.utils;

import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;
import android.app.Service;
import android.content.ComponentName;
import android.content.Context;

import java.util.List;

public class ServiceStatusUtils {

	// 判断服务有没有在运行
	public static boolean isServiceRunning(Context context, Class<? extends Service> cls) {
		// 1 获取正在运行的服务列表
		ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
		List<RunningServiceInfo> runningServices = am.getRunningServices(Integer.MAX_VALUE);// 20
		if (runningServices == null) {
			return false;
		}
		// 2 迭代正在运行服务列表，查找ProtectedService的这个服务，有没有在这个列表
		for (RunningServiceInfo info : runningServices) {
			ComponentName service = info.service;
			if (service.getClassName().equals(cls.getName())) {
				return true;
			}
		}
		// 3 假如有，就代表他在运行，没有这个服务没有运行
		return false;
	}
}
